package org.iori.util.text;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * 日期Util类
 * 
 * @author 张建斌
 * 
 */
public class DateUtil {
	// /**
	// * 将给出的日期加上相应的�?�，并返回结果日期格式化后的字符串�??
	// *
	// * @param origin
	// * 要计算的原始日期字符�?
	// * @param pattern
	// * 原始日期的格式化字符串，可以接受的格式与SimpleDateFormat相同
	// * @param field
	// * 要移动的字段，可以接受的值为Calendar中定义的YEAR/MONTH/DAY_OF_YEAR
	// * @param amount
	// * 要移动的偏移量，如果是正数，则移动后的日期在原始日期之后，否则在原始日期之前�?
	// * @return String 移动后的日期格式化后的字符串，格式与原始日期的格式一致�??
	// * @throws Exception
	// */
	// public static String roll(String origin, String pattern, int field,
	// int amount) throws Exception
	// {
	// SimpleDateFormat sdf = new SimpleDateFormat();
	// sdf.applyPattern(pattern);
	// Date date = sdf.parse(origin);
	//
	// GregorianCalendar gc = new GregorianCalendar();
	// gc.setTime(date);
	// gc.add(field, amount);
	//
	// return sdf.format(gc.getTime());
	// }
	//
	// /**
	// * 将给出的日期加上相应的�?�，并返回结果日期格式化后的字符串�??
	// *
	// * @param origin
	// * 要计算的原始日期字符串，格式为�?�yyyy/MM�?
	// * @param field
	// * 要移动的字段，可以接受的值为Calendar中定义的YEAR/MONTH/DAY_OF_YEAR
	// * @param amount
	// * 要移动的偏移量，如果是正数，则移动后的日期在原始日期之后，否则在原始日期之前�?
	// * @return String 移动后的日期格式化后的字符串，格式与原始日期的格式一致�??
	// * @throws Exception
	// */
	// public static String roll(String origin, int field, int amount)
	// throws Exception
	// {
	// return roll(origin, "yyyy/MM", field, amount);
	// }
	//
	// /**
	// * 将给出的日期加上指定的年，并返回结果日期格式化后的字符串�?
	// *
	// * @param origin
	// * 要计算的原始日期字符�?
	// * @param pattern
	// * 原始日期的格式化字符串，可以接受的格式与SimpleDateFormat相同
	// * @param amount
	// * 要移动的偏移量，如果是正数，则移动后的日期在原始日期之后，否则在原始日期之前�?
	// * @return String 移动后的日期格式化后的字符串，格式与原始日期的格式一致�??
	// * @throws Exception
	// */
	// public static String rollYear(String origin, String pattern, int amount)
	// throws Exception
	// {
	// return roll(origin, pattern, GregorianCalendar.YEAR, amount);
	// }
	//
	// /**
	// * 将给出的日期加上指定的月份，并返回结果日期格式化后的字符串�??
	// *
	// * @param origin
	// * 要计算的原始日期字符�?
	// * @param pattern
	// * 原始日期的格式化字符串，可以接受的格式与SimpleDateFormat相同
	// * @param amount
	// * 要移动的偏移量，如果是正数，则移动后的日期在原始日期之后，否则在原始日期之前�?
	// * @return String 移动后的日期格式化后的字符串，格式与原始日期的格式一致�??
	// * @throws Exception
	// */
	// public static String rollMonth(String origin, String pattern, int amount)
	// throws Exception
	// {
	// return roll(origin, pattern, GregorianCalendar.MONTH, amount);
	// }
	//
	// /**
	// * 将给出的日期加上指定的天，并返回结果日期格式化后的字符串�?
	// *
	// * @param origin
	// * 要计算的原始日期字符�?
	// * @param pattern
	// * 原始日期的格式化字符串，可以接受的格式与SimpleDateFormat相同
	// * @param amount
	// * 要移动的偏移量，如果是正数，则移动后的日期在原始日期之后，否则在原始日期之前�?
	// * @return String 移动后的日期格式化后的字符串，格式与原始日期的格式一致�??
	// * @throws Exception
	// */
	// public static String rollDay(String origin, String pattern, int amount)
	// throws Exception
	// {
	// return roll(origin, pattern, GregorianCalendar.DAY_OF_MONTH, amount);
	// }
	//
	// /**
	// * 将给出的日期移动到指定的月份，并返回结果日期格式化后的字符串�?
	// *
	// * @param origin
	// * 要计算的原始日期字符�?
	// * @param pattern
	// * 原始日期的格式化字符串，可以接受的格式与SimpleDateFormat相同
	// * @param month
	// * 移动后的月份�?
	// * @return String 移动后的日期格式化后的字符串，格式与原始日期的格式一致�??
	// * @throws Exception
	// */
	// public static String rollToMonth(String origin, String pattern, int
	// month)
	// throws Exception
	// {
	// SimpleDateFormat sdf = new SimpleDateFormat();
	// sdf.applyPattern(pattern);
	// Date date = sdf.parse(origin);
	//
	// GregorianCalendar gc = new GregorianCalendar();
	// gc.setTime(date);
	// gc.set(GregorianCalendar.MONTH, month - 1);
	//
	// return sdf.format(gc.getTime());
	// }
	//
	// /**
	// * 将给出的日期移动到指定的日，并返回结果日期格式化后的字符串�??
	// *
	// * @param origin
	// * 要计算的原始日期字符�?
	// * @param pattern
	// * 原始日期的格式化字符串，可以接受的格式与SimpleDateFormat相同
	// * @param day
	// * 移动后的日�??
	// * @return String 移动后的日期格式化后的字符串，格式与原始日期的格式一致�??
	// * @throws Exception
	// */
	// public static String rollToDay(String origin, String pattern, int day)
	// throws Exception
	// {
	// SimpleDateFormat sdf = new SimpleDateFormat();
	// sdf.applyPattern(pattern);
	// Date date = sdf.parse(origin);
	//
	// GregorianCalendar gc = new GregorianCalendar();
	// gc.setTime(date);
	// gc.set(GregorianCalendar.DAY_OF_MONTH, day);
	//
	// return sdf.format(gc.getTime());
	// }
	//
	// /**
	// * �Ƚ�}������
	// *
	// * @param date1 -
	// * ��ʽ��dateFormat����ͬ
	// * @param date2 -
	// * ��ʽ��dateFormat����ͬ
	// * @param dateFormat -
	// * ʱ��ĸ�ʽ��yyyy/MM/dd HH:mm:ss
	// * @return date1��date2֮��(����)�����ʱ���ʽ���󣬻����������ʱ�������� -
	// * Long.MIN_VALUE
	// */
	// public static long compareDate(String date1, String date2, String
	// dateFormat)
	// {
	// try
	// {
	// SimpleDateFormat sdf = new SimpleDateFormat();
	// sdf.applyPattern("yyyy/MM/dd HH:mm:ss");
	// Date d1 = sdf.parse(date1);
	// Date d2 = sdf.parse(date2);
	// return (d1.getTime() - d2.getTime());
	// }
	// catch (Exception e)
	// {
	// e.printStackTrace();
	// }
	//
	// return Long.MIN_VALUE;
	// }
	//
	// /**
	// *
	// * @param date1
	// * @param date2
	// * @param dateFormat
	// * @return
	// */
	// public static int compareMonth(String date1, String date2, int interval)
	// {
	// try
	// {
	// SimpleDateFormat sdf = new SimpleDateFormat();
	// sdf.applyPattern("yyyy/MM");
	// Date d1 = sdf.parse(date1);
	// Date d2 = sdf.parse(date2);
	//
	// GregorianCalendar gc = new GregorianCalendar();
	// gc.setTime(d1);
	// gc.add(GregorianCalendar.MONTH, interval);
	// long amount = gc.getTime().getTime() - d2.getTime();
	// if (amount > 0)
	// return 1;
	// else if (amount < 0)
	// return -1;
	// else
	// return 0;
	// }
	// catch (Exception e)
	// {
	// e.printStackTrace();
	// throw new RuntimeException(e.getMessage());
	// }
	// }
	//
	// /**
	// *
	// * @param begin
	// * YYYY/MM
	// * @param end
	// * YYYY/MM
	// * @return
	// */
	// public static int countMonths(String begin, String end)
	// {
	// int beginYear = Integer.parseInt(begin.substring(0, 4));
	// int endYear = Integer.parseInt(end.substring(0, 4));
	// int beginMonth = Integer.parseInt(begin.substring(5, 7));
	// int endMonth = Integer.parseInt(end.substring(5, 7));
	// int months = (endYear - beginYear) * 12 + (endMonth - beginMonth) + 1;
	//
	// return months;
	// }
	//
	// /**
	// * 返回入力月的天数。闰年2月份返回“29”，非闰年2月份返回“28”.
	// *
	// * @param strDate
	// * 格式：如果指定的格式为空，那么默认为“yyyyMM”
	// * @param format
	// * 日期格式
	// * @return
	// */
	// public static int getDayNumOfMonth(String strDate, String format)
	// {
	// if (DealString.isBlank(format))
	// {
	// format = "yyyyMM";
	// }
	// String s = FormatDate.formatDate(strDate, format, "MM");
	// int i = Integer.parseInt(FormatDate.formatDate(strDate,"yyyyMM","yyyy"));
	// if(s.equals("01")||s.equals("03")||s.equals("05")||s.equals("07")||s.equals("08")||
	// s.equals("10")||s.equals("12"))
	// return 31;
	// else if(s.equals("04")||s.equals("06")||s.equals("09")||s.equals("11"))
	// return 30;
	// else
	// {
	// if((i%4 == 0&&i%100 !=0)||i%400==0)
	// return 29;
	// else
	// return 28;
	// }
	// }

	/**
	 * 返回系统日期(yyyymmdd)
	 * 
	 * @return
	 * @deprecated 替换为getDate8()
	 */
	public static String getDate() {
		Calendar calendar = Calendar.getInstance();
		Date date = calendar.getTime();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");

		return sdf.format(date);
	}

	/**
	 * 返回系统当前日期与时间（yyyymmddhhnnss）
	 * 
	 * @param args
	 */
	public static String getDateTime14() {
		Calendar calendar = Calendar.getInstance();
		Date date = calendar.getTime();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");

		return sdf.format(date);
	}

	/**
	 * 返回系统当前日期与时间（yyyymmddhhnnssSSS）
	 * 
	 * @param args
	 */
	public static String getDateTime17() {
		Calendar calendar = Calendar.getInstance();
		Date date = calendar.getTime();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");

		return sdf.format(date);
	}

	/**
	 * 返回当前年（四位）字符串，如2006
	 * 
	 * @return 系统当前年
	 */
	public static String getCurrYear() {
		return String.valueOf(Calendar.getInstance().get(Calendar.YEAR));
	}

	/**
	 * 返回当前月(2位)的字符串，如01,02,...,10,11,12
	 * 
	 * @return 系统当前月
	 */
	public static String getCurrMonth() {
		int currMonth = Calendar.getInstance().get(Calendar.MONTH) + 1;
		return currMonth < 10 ? "0" + currMonth : String.valueOf(currMonth);
	}

	/**
	 * 返回当前日(2位)的字符串，如01,02,...,10,11,12
	 * 
	 * @return 系统当前日
	 */
	public static String getCurrDay() {
		int currDay = Calendar.getInstance().get(Calendar.DAY_OF_MONTH);
		return currDay < 10 ? "0" + currDay : String.valueOf(currDay);
	}

	//
	// /**
	// * 返回当前日(2位)的字符串，如01,02,....,30,31
	// *
	// * @return 当前日
	// */
	// public static String getCurrDay()
	// {
	// int currDay = Calendar.getInstance().get(Calendar.DAY_OF_MONTH);
	// return currDay < 10 ? "0" + currDay : String.valueOf(currDay);
	// }
	//
	// /**
	// * 返回日文格式的星期几的字符串，如日、月、火、水、木、金、土
	// *
	// * @param yyyymmdd
	// * 8位长度的年月日字符串，如20060601
	// * @return 星期几的字符串，对于无效的日期返回""
	// */
	// public static String getWeekday(String yyyymmdd)
	// {
	// try
	// {
	// java.util.Date date = new SimpleDateFormat("yyyyMMdd")
	// .parse(yyyymmdd);
	// String weekday = new SimpleDateFormat("E", Locale.JAPAN)
	// .format(date);
	//
	// return weekday.substring(0, 1);
	// }
	// catch (Exception ex)
	// {
	// ;
	// }
	//
	// return "";
	// }
	//
	// /**
	// * 检查输入的日期是否是指定的格式
	// *
	// * @param str
	// * @param dateFormat
	// * yyyyMMdd or yyyyMM
	// * @return true 是有效日期， false 无效日期
	// */
	// public static boolean isDate(String str, String dateFormat) {
	// if (str != null) {
	// java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat(
	// dateFormat);
	// formatter.setLenient(false);
	// try {
	// formatter.parse(str);
	// } catch (Exception e) {
	// return false;
	// }
	// return true;
	// }
	// return false;
	// }
	//
	// public static final String FULL_DATE_FORMAT = "yyyy/MM/dd HH:mm:ss";
	//
	// /**
	// * 日期转换.将源日期格式转换为目标日期格式
	// *
	// * @param dateString
	// * 将要转换的日期字符串
	// * @param oldFormat
	// * 将要转换的日期字符串的日期格式（源日期格式）
	// * @param newFormat
	// * 目标日期格式
	// * @return 转换后的日期字符串
	// */
	// public static String formatDate(String dateString, String oldFormat,
	// String newFormat) {
	// String result = null;
	// SimpleDateFormat sdf = new SimpleDateFormat(oldFormat);
	// Date date = null;
	// try {
	// date = sdf.parse(dateString);
	// sdf = new SimpleDateFormat(newFormat);
	// result = sdf.format(date);
	// } catch (Exception e) {
	// e.printStackTrace();
	// }
	// return result;
	// }
	//
	// /**
	// * 传入完整(yyyy/MM/dd hh:mm:ss)的日期，和需要格式化为部分日期的格式
	// *
	// * @param fullDateString
	// * @param format
	// * "yyyy/MM/dd hh:mm:ss"中的部分，注意区分大小写。
	// * @return 部分日期字符串。
	// */
	// public static String getPartDateString(String fullDateString, String
	// format) {
	// SimpleDateFormat sdf = new SimpleDateFormat(FULL_DATE_FORMAT);
	// Date date = null;
	// try {
	// date = sdf.parse(fullDateString);
	// } catch (Exception e) {
	// e.printStackTrace();
	// }
	// sdf = new SimpleDateFormat(format);
	// return sdf.format(date);
	// }
	//
	// /**
	// * 传入部分日期字符串，并指定部分日期的格式。
	// *
	// * @param partDateString
	// * 部分日期字符串
	// * @param format
	// * 部分日期的格式, 为"yyyy/MM/dd HH:mm:ss"中的一部分，注意区分大小写。
	// * @return 完整的日期字符串。"yyyy/MM/dd HH:mm:ss"
	// */
	// public static String getFullDateString(String partDateString, String
	// format) {
	// SimpleDateFormat sdf = new SimpleDateFormat(format);
	// Date date = null;
	// try {
	// date = sdf.parse(partDateString);
	// } catch (Exception e) {
	// e.printStackTrace();
	// }
	// sdf = new SimpleDateFormat(FULL_DATE_FORMAT);
	// return sdf.format(date);
	// }
	//
	// /**
	// * 得到当前日期的字符串。
	// *
	// * @param format
	// * 指定需要当前日期的格式。"yyyy/MM/dd HH:mm:ss"取其中部分格式组合。
	// * @return
	// */
	// public static String getCurrentDateString(String format) {
	// SimpleDateFormat sdf = new SimpleDateFormat(format);
	// return sdf.format(new Date());
	// }
	//
	// /**
	// * 将传入的日期（date)按要求格式化
	// *
	// * @param date
	// * @param format
	// * "yyyy/MM/dd HH:mm:ss"取其中部分格式组合。
	// * @return
	// */
	// public static String getDateString(Date date, String format) {
	// SimpleDateFormat sdf = new SimpleDateFormat(format);
	// return sdf.format(date);
	// }

	/**
	 * 返回指定天数的日期
	 * 
	 * @param startDate
	 *            开始日期（格式：yyyymmdd）
	 * @param days
	 *            天数长度（包括开始日期当天）
	 * @return 加上天数长度后的日期
	 */
	public static String afterDay(String startDate, int days) {
		// 获取开始日期的年月日
		int year = Integer.parseInt(startDate.substring(0, 4));
		int month = Integer.parseInt(startDate.substring(4, 6)) - 1;
		int day = Integer.parseInt(startDate.substring(6));

		Calendar calendar = Calendar.getInstance();
		calendar.set(year, month, day);
		calendar.add(calendar.DATE, days - 1);
		Date date = calendar.getTime();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");

		return sdf.format(date);
	}

	// /**
	// * 将给出的日期加上相应的�?�，并返回结果日期格式化后的字符串�??
	// *
	// * @param origin
	// * 要计算的原始日期字符�?
	// * @param pattern
	// * 原始日期的格式化字符串，可以接受的格式与SimpleDateFormat相同
	// * @param field
	// * 要移动的字段，可以接受的值为Calendar中定义的YEAR/MONTH/DAY_OF_YEAR
	// * @param amount
	// * 要移动的偏移量，如果是正数，则移动后的日期在原始日期之后，否则在原始日期之前�?
	// * @return String 移动后的日期格式化后的字符串，格式与原始日期的格式一致�??
	// * @throws Exception
	// */
	// public static String roll(String origin, String pattern, int field,
	// int amount) throws Exception
	// {
	// SimpleDateFormat sdf = new SimpleDateFormat();
	// sdf.applyPattern(pattern);
	// Date date = sdf.parse(origin);
	//
	// GregorianCalendar gc = new GregorianCalendar();
	// gc.setTime(date);
	// gc.add(field, amount);
	//
	// return sdf.format(gc.getTime());
	// }
	//
	// /**
	// * 将给出的日期加上相应的�?�，并返回结果日期格式化后的字符串�??
	// *
	// * @param origin
	// * 要计算的原始日期字符串，格式为�?�yyyy/MM�?
	// * @param field
	// * 要移动的字段，可以接受的值为Calendar中定义的YEAR/MONTH/DAY_OF_YEAR
	// * @param amount
	// * 要移动的偏移量，如果是正数，则移动后的日期在原始日期之后，否则在原始日期之前�?
	// * @return String 移动后的日期格式化后的字符串，格式与原始日期的格式一致�??
	// * @throws Exception
	// */
	// public static String roll(String origin, int field, int amount)
	// throws Exception
	// {
	// return roll(origin, "yyyy/MM", field, amount);
	// }
	//
	// /**
	// * 将给出的日期加上指定的年，并返回结果日期格式化后的字符串�?
	// *
	// * @param origin
	// * 要计算的原始日期字符�?
	// * @param pattern
	// * 原始日期的格式化字符串，可以接受的格式与SimpleDateFormat相同
	// * @param amount
	// * 要移动的偏移量，如果是正数，则移动后的日期在原始日期之后，否则在原始日期之前�?
	// * @return String 移动后的日期格式化后的字符串，格式与原始日期的格式一致�??
	// * @throws Exception
	// */
	// public static String rollYear(String origin, String pattern, int amount)
	// throws Exception
	// {
	// return roll(origin, pattern, GregorianCalendar.YEAR, amount);
	// }
	//
	// /**
	// * 将给出的日期加上指定的月份，并返回结果日期格式化后的字符串�??
	// *
	// * @param origin
	// * 要计算的原始日期字符�?
	// * @param pattern
	// * 原始日期的格式化字符串，可以接受的格式与SimpleDateFormat相同
	// * @param amount
	// * 要移动的偏移量，如果是正数，则移动后的日期在原始日期之后，否则在原始日期之前�?
	// * @return String 移动后的日期格式化后的字符串，格式与原始日期的格式一致�??
	// * @throws Exception
	// */
	// public static String rollMonth(String origin, String pattern, int amount)
	// throws Exception
	// {
	// return roll(origin, pattern, GregorianCalendar.MONTH, amount);
	// }
	//
	// /**
	// * 将给出的日期加上指定的天，并返回结果日期格式化后的字符串�?
	// *
	// * @param origin
	// * 要计算的原始日期字符�?
	// * @param pattern
	// * 原始日期的格式化字符串，可以接受的格式与SimpleDateFormat相同
	// * @param amount
	// * 要移动的偏移量，如果是正数，则移动后的日期在原始日期之后，否则在原始日期之前�?
	// * @return String 移动后的日期格式化后的字符串，格式与原始日期的格式一致�??
	// * @throws Exception
	// */
	// public static String rollDay(String origin, String pattern, int amount)
	// throws Exception
	// {
	// return roll(origin, pattern, GregorianCalendar.DAY_OF_MONTH, amount);
	// }
	//
	// /**
	// * 将给出的日期移动到指定的月份，并返回结果日期格式化后的字符串�?
	// *
	// * @param origin
	// * 要计算的原始日期字符�?
	// * @param pattern
	// * 原始日期的格式化字符串，可以接受的格式与SimpleDateFormat相同
	// * @param month
	// * 移动后的月份�?
	// * @return String 移动后的日期格式化后的字符串，格式与原始日期的格式一致�??
	// * @throws Exception
	// */
	// public static String rollToMonth(String origin, String pattern, int
	// month)
	// throws Exception
	// {
	// SimpleDateFormat sdf = new SimpleDateFormat();
	// sdf.applyPattern(pattern);
	// Date date = sdf.parse(origin);
	//
	// GregorianCalendar gc = new GregorianCalendar();
	// gc.setTime(date);
	// gc.set(GregorianCalendar.MONTH, month - 1);
	//
	// return sdf.format(gc.getTime());
	// }
	//
	// /**
	// * 将给出的日期移动到指定的日，并返回结果日期格式化后的字符串�??
	// *
	// * @param origin
	// * 要计算的原始日期字符�?
	// * @param pattern
	// * 原始日期的格式化字符串，可以接受的格式与SimpleDateFormat相同
	// * @param day
	// * 移动后的日�??
	// * @return String 移动后的日期格式化后的字符串，格式与原始日期的格式一致�??
	// * @throws Exception
	// */
	// public static String rollToDay(String origin, String pattern, int day)
	// throws Exception
	// {
	// SimpleDateFormat sdf = new SimpleDateFormat();
	// sdf.applyPattern(pattern);
	// Date date = sdf.parse(origin);
	//
	// GregorianCalendar gc = new GregorianCalendar();
	// gc.setTime(date);
	// gc.set(GregorianCalendar.DAY_OF_MONTH, day);
	//
	// return sdf.format(gc.getTime());
	// }
	//
	// /**
	// * �Ƚ�}������
	// *
	// * @param date1 -
	// * ��ʽ��dateFormat����ͬ
	// * @param date2 -
	// * ��ʽ��dateFormat����ͬ
	// * @param dateFormat -
	// * ʱ��ĸ�ʽ��yyyy/MM/dd HH:mm:ss
	// * @return date1��date2֮��(����)�����ʱ���ʽ���󣬻����������ʱ�������� -
	// * Long.MIN_VALUE
	// */
	// public static long compareDate(String date1, String date2, String
	// dateFormat)
	// {
	// try
	// {
	// SimpleDateFormat sdf = new SimpleDateFormat();
	// sdf.applyPattern("yyyy/MM/dd HH:mm:ss");
	// Date d1 = sdf.parse(date1);
	// Date d2 = sdf.parse(date2);
	// return (d1.getTime() - d2.getTime());
	// }
	// catch (Exception e)
	// {
	// e.printStackTrace();
	// }
	//
	// return Long.MIN_VALUE;
	// }
	//
	// /**
	// *
	// * @param date1
	// * @param date2
	// * @param dateFormat
	// * @return
	// */
	// public static int compareMonth(String date1, String date2, int interval)
	// {
	// try
	// {
	// SimpleDateFormat sdf = new SimpleDateFormat();
	// sdf.applyPattern("yyyy/MM");
	// Date d1 = sdf.parse(date1);
	// Date d2 = sdf.parse(date2);
	//
	// GregorianCalendar gc = new GregorianCalendar();
	// gc.setTime(d1);
	// gc.add(GregorianCalendar.MONTH, interval);
	// long amount = gc.getTime().getTime() - d2.getTime();
	// if (amount > 0)
	// return 1;
	// else if (amount < 0)
	// return -1;
	// else
	// return 0;
	// }
	// catch (Exception e)
	// {
	// e.printStackTrace();
	// throw new RuntimeException(e.getMessage());
	// }
	// }
	//
	// /**
	// *
	// * @param begin
	// * YYYY/MM
	// * @param end
	// * YYYY/MM
	// * @return
	// */
	// public static int countMonths(String begin, String end)
	// {
	// int beginYear = Integer.parseInt(begin.substring(0, 4));
	// int endYear = Integer.parseInt(end.substring(0, 4));
	// int beginMonth = Integer.parseInt(begin.substring(5, 7));
	// int endMonth = Integer.parseInt(end.substring(5, 7));
	// int months = (endYear - beginYear) * 12 + (endMonth - beginMonth) + 1;
	//
	// return months;
	// }
	//
	// /**
	// * 返回入力月的天数。闰年2月份返回“29”，非闰年2月份返回“28”.
	// *
	// * @param strDate
	// * 格式：如果指定的格式为空，那么默认为“yyyyMM”
	// * @param format
	// * 日期格式
	// * @return
	// */
	// public static int getDayNumOfMonth(String strDate, String format)
	// {
	// if (DealString.isBlank(format))
	// {
	// format = "yyyyMM";
	// }
	// String s = FormatDate.formatDate(strDate, format, "MM");
	// int i = Integer.parseInt(FormatDate.formatDate(strDate,"yyyyMM","yyyy"));
	// if(s.equals("01")||s.equals("03")||s.equals("05")||s.equals("07")||s.equals("08")||
	// s.equals("10")||s.equals("12"))
	// return 31;
	// else if(s.equals("04")||s.equals("06")||s.equals("09")||s.equals("11"))
	// return 30;
	// else
	// {
	// if((i%4 == 0&&i%100 !=0)||i%400==0)
	// return 29;
	// else
	// return 28;
	// }
	// }

	/**
	 * 返回8位的系统日期(yyyymmdd)
	 * 
	 * @return
	 */
	public static String getDate8() {
		Calendar calendar = Calendar.getInstance();
		Date date = calendar.getTime();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");

		return sdf.format(date);
	}
}
